package cn.dida.service;

import java.util.List;

import cn.dida.model.Branch;
import cn.dida.model.Pageable;
import cn.dida.model.Prize;
import cn.dida.model.PrizeBranch;

/**
 * <p>奖品 接口</p>
 * @author lisha
 * @date 2016-11-10 16:01
 * */
public interface PrizeService {
	/**
	 * 根据奖品id获取已关联的网点
	 * @param prizeId 奖品id
	 * @return List<PrizeBranch> 奖品列表集合
	 * @date 2016-11-20 10:20
	 * */
	public List<Branch> getBranchListByPrizeId(String prizeId);
	
	/**
	 * 获取正常可用的奖品信息
	 * @return List<Prize>
	 * @date 2016-11-10 16:04
	 * */
	public List<Prize> queryPrize(Integer compayId);
	/**
	 * 增加奖品信息
	 * @param prize 奖品实体类
	 * @return Boolean 是否操作成功, true增加成功,false失败
	 * @date 2016-11-10 16:04
	 * */
	Boolean insertPrize(Prize prize);

	/**
     * 更新奖品信息
     * @param prize 奖品实体类
	 * @return Boolean 是否操作成功, true更新成功, false失败
	 * @date 2016-11-10 16:06
     * */
    Boolean updatePrize(Integer companyId,Prize prize);
    
    /**
     * 删除奖品信息
     * @param id 奖品记录行号
     * @return Boolean 是否操作成功, true删除成功，false失败
     * @date 2016-11-10 16:07
     * */
    Boolean deletePrizeById(Integer companyId,int id);
    
    /**
	 * 根据记录行号奖品详情
	 * @param id 奖品记录行号
	 * @return Prize 奖品实体信息
	 * @date 2016-11-10 16:09
	 * */
    Prize getPrizeById(Integer id, Integer companyId);
    /**
	 * 奖品列表
	 * @param name 奖品名称
	 * @param type 奖品类型（1红包，2实物，3优惠券）
	 * @param page 分页游标
	 * @return Pageable<Prize> 奖品分页列表
	 * @date 2016-11-10 16:10
	 * */
	Pageable<Prize> queryPrize(Integer compayId,String name, int type,int page);
	/**
	 * 删除奖品与自提网点关联
	 * @param branchId 奖品记录行号
	 * @return int 受影响的记录数
	 * @date 2016-11-26 11:45
	 * */
    Boolean deleteBranchById(Integer branchId);
    
    List<PrizeBranch> getPrizeBranchListByPrizeId(Integer prizeId);
    
    /**
     * 根据奖品名称 查看奖品是否存在
     * @param companyId 公司名称
     * @param name 奖品名称
     * @return boolean true存在，false不存在
     * @date 2016-12-12 11:23
     * */
    public boolean isExistsPrize(Integer companyId, String name);
}
